package clases.contabilidad;

import clases.incio.Paginacion;
import CapaDatos.DataSource;
import CapaDatos.Sql;
import java.util.LinkedList;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;


public class Diario extends DetalleAsiento {
    private String sql;
    private final DataSource dt;
    public Paginacion p;

            
    public Diario() {
    dt=new DataSource();
    p= new Paginacion();
    
    }
    
      
    @Override
    public String SqlGeneral(){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+"";
     return sql;
    }
    
    public String Sqlnasiento(int asiento){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE ASIENTO="+asiento+"";
     return sql;
    }
    
    public String Sqlcodigo(String codigo){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE CUENTA LIKE ('"+codigo+"%')";
     return sql;
    }
    
    public String Sqlcuenta(String cuenta){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE DESCRIPCION LIKE ('"+cuenta+"%')";
     return sql;
    }
    
    public String Sqlentrefecha(String fecha1, String fecha2){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE FECHA BETWEEN '"+fecha1+"' AND '"+fecha2+"'";
     return sql;
    }
    
    public String Sqfechaasiento(int asiento, String fecha1, String fecha2){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE ASIENTO="+asiento+" "
             + " AND FECHA BETWEEN '"+fecha1+"' AND '"+fecha2+"'";
     return sql;
    }
    
    public String Sqfechacodigo(int codigo, String fecha1, String fecha2){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE CUENTA="+codigo+" "
             + " AND FECHA BETWEEN '"+fecha1+"' AND '"+fecha2+"'";
     return sql;
    }
    
    public String Sqfechacuenta(String cuenta, String fecha1, String fecha2){
     sql="SELECT * FROM "+"\"LIBRODIARIO\""+" WHERE DESCRIPCION LIKE ('"+cuenta+"%')"
             + " AND FECHA BETWEEN '"+fecha1+"' AND '"+fecha2+"'";
     return sql;
    }
       
    public void llenarTabla(DefaultTableModel modelo, JTable tabla, String sql, JLabel Lpaginatotal, JLabel Lpagina, int pagina){
   modelo = new DefaultTableModel() {
       @Override
       public boolean isCellEditable(int fila, int columna) {
          return false; 
       }
    };
     tabla.setModel(modelo);
     modelo.addColumn("ASIENTO");
      modelo.addColumn("FECHA");
      modelo.addColumn("CODIGO");
      modelo.addColumn("CUENTA");
      modelo.addColumn("DOCUMENTO");
      modelo.addColumn("DESCRIPCION");
      modelo.addColumn("DEBE");
      modelo.addColumn("HABER");
      DefaultTableCellRenderer centrar=new DefaultTableCellRenderer();
      centrar.setHorizontalAlignment(SwingConstants.RIGHT);
      tabla.getColumnModel().getColumn(6).setCellRenderer(centrar);
      tabla.getColumnModel().getColumn(7).setCellRenderer(centrar);
      TableColumn  columna= new TableColumn();
      columna=tabla.getColumnModel().getColumn(3);
      columna.setPreferredWidth(250);
      columna=tabla.getColumnModel().getColumn(5);
      columna.setPreferredWidth(250);
    sql=p.getPaginacion(sql, pagina, 25);
    Sql.getConsulta(sql, dt);
    
    String []fila;
  
    while(dt.next()){
    fila=new String[8];
    fila[0]=dt.getString(1);
    fila[1]=dt.getString(2);
    fila[2]=dt.getString(3);
    fila[3]=dt.getString(4);
    fila[4]=dt.getString(5);
    fila[5]=dt.getString(6);
    fila[6]=dt.getString(7);
    fila[7]=dt.getString(8);
       
    modelo.addRow(fila);
    }
    objPaginacion.actualPagina(Lpagina);
        objPaginacion.totalPaginas(Lpaginatotal);
        tabla.getSelectionModel().setSelectionInterval(0, 0);
    }
    public LinkedList getInformacion(){
	LinkedList info = new LinkedList();
	Diario consulta;
	Sql.getConsulta("SELECT ASIENTO, CUENTA, DESCRIPCION FROM "+"\"LIBRODIARIO\""+"", dt);
		//ResultSet rs = st.executeQuery("SELECT * FROM Personas"); 
		while (dt.next())
		{
			consulta = new Diario();
			//agregamos la informacion a el objeto consulta
			/*consulta.setIdPersona(rs.getObject("idPersona").toString());
			consulta.setNombre(rs.getObject("nombre").toString());
			consulta.setTipo(rs.getObject("tipo").toString());
			consulta.setCiudad(rs.getObject("ciudad").toString());
			consulta.setDescripcion(rs.getObject("descripcion").toString());
			Blob blob = rs.getBlob("foto");*/
                    this.setNumero(dt.getInt(1));
                    this.setCodigocuenta(dt.getString(2));
                    this.setDescripcion(dt.getString(2));
			//int blobLength=(int)blob.length();
			//byte[] blobasbytes = blob.getBytes(1, blobLength);
			//ImageIcon icon = new ImageIcon((byte[])blobasbytes);
			//consulta.setFoto(icon.getImage());
			//agregamos nueva consulta a la informacion
			info.add(consulta);
		}
		//rs.close();
		return info;
	
	//return null;
}
    
}
